/* 
输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数在数组的前半部分，所有偶数在数组的后半部分。


输入：nums = [1,2,3,4]
输出：[1,3,2,4] 
注：[3,1,2,4] 也是正确的答案之一。


思路1：遍历一遍，将奇数、偶数分别取出，最后拼接
思路2：双指针，左指针从左端找偶数，右指针从尾端开始找奇数，找到后互换位置，直到左右指针相遇
*/

/**
 * @param {number[]} nums
 * @return {number[]}
 */
 var exchange = function(nums) {
    const len=nums.length

    // 思路1：
    let ji=[],ou=[]
    for (const v of nums) {
        if(v%2!=0){
            ji.push(v)
        }else{
            ou.push(v)
        }
    }
    return ji.concat(ou)

    // 思路2：
    /* let i=0,j=len-1
    while(i<j){
        if(nums[i]%2==0&&nums[j]%2!=0){
            let temp=nums[j]
            nums[j]=nums[i]
            nums[i]=temp
            i++
            j--
        }else if(nums[i]%2!=0){
            i++
        }else{
            j--
        }
    }
    return nums */

};

let nums = [1,2,3,4]
let res = exchange(nums)
console.log(res);